home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / TURB_VIS / TCYBER25 / COMMON.ZIP / VGACGFIL.PAS < prev   
Pascal/Delphi Source File  |  1994-10-20  |  3KB  |  31 lines

  1. {
  2. Turbo Vision CyberTools 2.5
  3. (C) 1994 Steve Goldsmith
  4. All Rights Reserved
  5. }
  6.  
  7. UNIT VGACGFIL ;{$I APP.INC} INTERFACE USES DOS , OBJECTS , {$IFDEF UseDLL} CYBERAPI ;{$ELSE} VGA ;{$ENDIF}
  8. CONST CGFVERSION =$0100 ;CGFMEMALLOC =- 100 ;CGFNOTCGFFORMAT =- 101 ;TYPE CGFHEADER =RECORD VERSION , HEIGHT , STARTCHR ,
  9. TOTALCHRS :WORD ;FILLER :ARRAY [ 0 .. 119 ]  OF BYTE ;END ;PCHRGENFILE =^TCHRGENFILE ;
  10. TCHRGENFILE =OBJECT (TOBJECT)IOERROR :INTEGER ;CHRTABLESIZE :WORD ;CGFFILE :FILE ;HEADER :CGFHEADER ;
  11. CHRTABLEPTR :VGACHRTABLEPTR ;CONSTRUCTOR INIT ;DESTRUCTOR DONE ;VIRTUAL;PROCEDURE FREECHRTABLE ;PROCEDURE OPENREAD
  12. (FILENAME :PATHSTR );PROCEDURE READCHRTABLE ;PROCEDURE OPENWRITE (FILENAME :PATHSTR );PROCEDURE WRITECHRTABLE ;
  13. PROCEDURE GETFONTTABLE (CHRTABLE ,STARTCHR,TOTALCHRS,HEIGHT:WORD );END ;
  14. IMPLEMENTATION USES MEMORY ;CONSTRUCTOR TCHRGENFILE.INIT ;BEGIN INHERITED INIT;HEADER.VERSION := CGFVERSION END ;
  15. DESTRUCTOR TCHRGENFILE.DONE ;BEGIN {$I-}CLOSE (CGFFILE );{$I+}IOERROR := IORESULT ;INHERITED DONE END ;
  16. PROCEDURE TCHRGENFILE.FREECHRTABLE ;BEGIN IF CHRTABLEPTR <> NIL THEN FREEMEM (CHRTABLEPTR , CHRTABLESIZE )END ;
  17. PROCEDURE TCHRGENFILE.OPENREAD (FILENAME:PATHSTR);BEGIN ASSIGN (CGFFILE , FILENAME );{$I-}RESET (CGFFILE , 1 );
  18. {$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKREAD (CGFFILE , HEADER , SIZEOF (HEADER ));{$I+}IOERROR :=
  19. IORESULT ;IF IOERROR =0 THEN BEGIN IF HEADER.VERSION =CGFVERSION THEN BEGIN CHRTABLESIZE := HEADER.HEIGHT *
  20. HEADER.TOTALCHRS ;CHRTABLEPTR := MEMALLOC (CHRTABLESIZE );IF CHRTABLEPTR =NIL THEN IOERROR := CGFMEMALLOC END ELSE
  21. IOERROR := CGFNOTCGFFORMAT END END END ;PROCEDURE TCHRGENFILE.READCHRTABLE ;VAR O1lIII0lO0I1:WORD;BEGIN {$I-}SEEK
  22. (CGFFILE , SIZEOF (HEADER ));{$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKREAD (CGFFILE , CHRTABLEPTR ^,
  23. CHRTABLESIZE , O1lIII0lO0I1 );{$I+}IOERROR := IORESULT END END ;PROCEDURE TCHRGENFILE.OPENWRITE (FILENAME:PATHSTR);
  24. BEGIN ASSIGN (CGFFILE , FILENAME );{$I-}REWRITE (CGFFILE , 1 );{$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN
  25. BEGIN {$I-}BLOCKWRITE (CGFFILE , HEADER , SIZEOF (HEADER ));{$I+}IOERROR := IORESULT END END ;
  26. PROCEDURE TCHRGENFILE.WRITECHRTABLE ;VAR OI1OOO0OO0:WORD;BEGIN {$I-}SEEK (CGFFILE , SIZEOF (HEADER ));{$I+}IOERROR :=
  27. IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKWRITE (CGFFILE , CHRTABLEPTR ^, CHRTABLESIZE , OI1OOO0OO0 );{$I+}IOERROR :=
  28. IORESULT END END ;PROCEDURE TCHRGENFILE.GETFONTTABLE (CHRTABLE,STARTCHR,TOTALCHRS,HEIGHT:WORD);BEGIN HEADER.HEIGHT :=
  29. HEIGHT ;HEADER.STARTCHR := STARTCHR ;HEADER.TOTALCHRS := TOTALCHRS ;CHRTABLESIZE := HEIGHT * TOTALCHRS ;CHRTABLEPTR :=
  30. GETRAMTABLE (STARTCHR , TOTALCHRS , HEIGHT , VGACHRTABLELOC [ CHRTABLE ] )END ;END .
  31.